package my.util;

/**
 * <p>
 * 接口
 * </p>
 *
 * @author AJun
 * @since 2020/8/11
 */
public interface List<E> {

    /**
     * 返回元素数量
     */
    int size();

    /**
     * 返回是否为空
     */
    boolean isEmpty();

    /**
     * 是否包含某个元素
     */
    boolean contains(E element);

    /**
     * 查看元素的索引
     */
    int indexOf(E element);

    /**
     * 获取索引为 index 位置的元素
     */
    E get(int index);

    /**
     * 设置索引为 index 位置的元素为指定的值
     */
    E set(int index, E element);

    /**
     * 添加元素到末尾
     */
    void add(E element);

    /**
     * 在索引为 index 位置插入一个元素
     */
    void add(int index, E element);

    /**
     * 删除索引为 index 位置的元素
     */
    E remove(int index);

    /**
     * 清除所有元素
     */
    void clean();

}